<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Ogre_glTF: C:/YbalridSoftware/AnnwvynSDK64/Ogre_glTF/src/Ogre_glTF.cpp Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Ogre_glTF
   </div>
   <div id="projectbrief">glTF import library for Ogre</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('_ogre__gl_t_f_8cpp_source.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">Ogre_glTF.cpp</div>  </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="preprocessor">#include &lt;utility&gt;</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;</div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="preprocessor">#include &quot;Ogre_glTF.hpp&quot;</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="preprocessor">#include &quot;Ogre_glTF_modelConverter.hpp&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="preprocessor">#include &quot;Ogre_glTF_textureImporter.hpp&quot;</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="preprocessor">#include &quot;Ogre_glTF_materialLoader.hpp&quot;</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="preprocessor">#include &quot;Ogre_glTF_skeletonImporter.hpp&quot;</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="preprocessor">#include &quot;Ogre_glTF_common.hpp&quot;</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="preprocessor">#include &quot;Ogre_glTF_OgreResource.hpp&quot;</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;</div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="preprocessor">#define TINYGLTF_IMPLEMENTATION</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="preprocessor">#define STB_IMAGE_IMPLEMENTATION</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="preprocessor">#define STB_IMAGE_WRITE_IMPLEMENTATION</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#include &quot;tiny_gltf.h&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#include &lt;OgreItem.h&gt;</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#include &lt;OgreMesh2.h&gt;</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="keyword">using namespace </span><a class="code" href="namespace_ogre__gl_t_f.html">Ogre_glTF</a>;</div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="structloader_adapter_1_1impl.html">   22</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structloader_adapter_1_1impl.html">loaderAdapter::impl</a></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;{</div><div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="structloader_adapter_1_1impl.html#aebc596a65a3b61a03f10e113b2e05e02">   26</a></span>&#160;    <a class="code" href="structloader_adapter_1_1impl.html#aebc596a65a3b61a03f10e113b2e05e02">impl</a>() : <a class="code" href="structloader_adapter_1_1impl.html#a9af00068eb708150c0a8b82224aac4b7">textureImp</a>(<a class="code" href="structloader_adapter_1_1impl.html#a017131119684a2a51353488ac21137b2">model</a>), <a class="code" href="structloader_adapter_1_1impl.html#a00bf8d32948b8f5190a343ee4023ec99">materialLoad</a>(<a class="code" href="structloader_adapter_1_1impl.html#a017131119684a2a51353488ac21137b2">model</a>, <a class="code" href="structloader_adapter_1_1impl.html#a9af00068eb708150c0a8b82224aac4b7">textureImp</a>), <a class="code" href="structloader_adapter_1_1impl.html#ab105fd46afde9caf98dba76009ac10ad">modelConv</a>(<a class="code" href="structloader_adapter_1_1impl.html#a017131119684a2a51353488ac21137b2">model</a>), <a class="code" href="structloader_adapter_1_1impl.html#a910e82c85231e87e90a3ccc7e360ebd0">skeletonImp</a>(<a class="code" href="structloader_adapter_1_1impl.html#a017131119684a2a51353488ac21137b2">model</a>) {}</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="structloader_adapter_1_1impl.html#ab649b615fd7c007d594e6fa25aa27b65">   29</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structloader_adapter_1_1impl.html#ab649b615fd7c007d594e6fa25aa27b65">valid</a> = <span class="keyword">false</span>;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="structloader_adapter_1_1impl.html#a017131119684a2a51353488ac21137b2">   32</a></span>&#160;    tinygltf::Model <a class="code" href="structloader_adapter_1_1impl.html#a017131119684a2a51353488ac21137b2">model</a>;</div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="structloader_adapter_1_1impl.html#ab1902523c681ab8317d80a64705a3a74">   35</a></span>&#160;    std::string <a class="code" href="structloader_adapter_1_1impl.html#ab1902523c681ab8317d80a64705a3a74">error</a> = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="structloader_adapter_1_1impl.html#a9e7b3bf5bd1f566a8889cf754fac7df5">   38</a></span>&#160;    std::string <a class="code" href="structloader_adapter_1_1impl.html#a9e7b3bf5bd1f566a8889cf754fac7df5">warnings</a> = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="structloader_adapter_1_1impl.html#a9af00068eb708150c0a8b82224aac4b7">   41</a></span>&#160;    <a class="code" href="class_ogre__gl_t_f_1_1texture_importer.html">textureImporter</a> <a class="code" href="structloader_adapter_1_1impl.html#a9af00068eb708150c0a8b82224aac4b7">textureImp</a>;</div><div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="structloader_adapter_1_1impl.html#a00bf8d32948b8f5190a343ee4023ec99">   44</a></span>&#160;    <a class="code" href="class_ogre__gl_t_f_1_1material_loader.html">materialLoader</a> <a class="code" href="structloader_adapter_1_1impl.html#a00bf8d32948b8f5190a343ee4023ec99">materialLoad</a>;</div><div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="structloader_adapter_1_1impl.html#ab105fd46afde9caf98dba76009ac10ad">   48</a></span>&#160;    <a class="code" href="class_ogre__gl_t_f_1_1model_converter.html">modelConverter</a> <a class="code" href="structloader_adapter_1_1impl.html#ab105fd46afde9caf98dba76009ac10ad">modelConv</a>;</div><div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="structloader_adapter_1_1impl.html#a910e82c85231e87e90a3ccc7e360ebd0">   51</a></span>&#160;    <a class="code" href="class_ogre__gl_t_f_1_1skeleton_importer.html">skeletonImporter</a> <a class="code" href="structloader_adapter_1_1impl.html#a910e82c85231e87e90a3ccc7e360ebd0">skeletonImp</a>;</div><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;};</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="class_ogre__gl_t_f_1_1loader_adapter.html#a007f2e62d2ee48b0f5586b1cc1fbcfcb">   54</a></span>&#160;<a class="code" href="class_ogre__gl_t_f_1_1loader_adapter.html#a007f2e62d2ee48b0f5586b1cc1fbcfcb">loaderAdapter::loaderAdapter</a>() : pimpl { std::make_unique&lt;impl&gt;() } { OgreLog(<span class="stringliteral">&quot;Created adapter object...&quot;</span>); }</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="class_ogre__gl_t_f_1_1loader_adapter.html#acf9c1fd0f8ed3b627358eae7ec208ae8">   56</a></span>&#160;<a class="code" href="class_ogre__gl_t_f_1_1loader_adapter.html#acf9c1fd0f8ed3b627358eae7ec208ae8">loaderAdapter::~loaderAdapter</a>() { OgreLog(<span class="stringliteral">&quot;Destructed adapter object...&quot;</span>); }</div><div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="class_ogre__gl_t_f_1_1loader_adapter.html#a3dbd195b41463feaf4ad135370cf899a">   58</a></span>&#160;Ogre::Item* <a class="code" href="class_ogre__gl_t_f_1_1loader_adapter.html#a3dbd195b41463feaf4ad135370cf899a">loaderAdapter::getItem</a>(Ogre::SceneManager* smgr)<span class="keyword"> const</span></div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    <span class="keywordflow">if</span>(<a class="code" href="class_ogre__gl_t_f_1_1loader_adapter.html#a6b2db7f7f8f4a6b6f1d46a0843f40424">isOk</a>())</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;    {</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;        pimpl-&gt;textureImp.loadTextures();</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;        Ogre::MeshPtr Mesh = <a class="code" href="class_ogre__gl_t_f_1_1loader_adapter.html#acc344a61f7cef4addca802707bd1fea4">getMesh</a>();</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;        <span class="keyword">auto</span> Item = smgr-&gt;createItem(Mesh);</div><div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;        <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i = 0; i &lt; Item-&gt;getNumSubItems(); ++i) { Item-&gt;getSubItem(i)-&gt;setDatablock(<a class="code" href="class_ogre__gl_t_f_1_1loader_adapter.html#adec6084ea93de50084d45dcf5bc15d24">getDatablock</a>(i)); }</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;        <span class="keywordflow">return</span> Item;</div><div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    }</div><div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;}</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="class_ogre__gl_t_f_1_1loader_adapter.html#ae61617a049626869954e57ff0a7a2109">   72</a></span>&#160;<a class="code" href="struct_ogre__gl_t_f_1_1_model_information_1_1_model_transform.html">ModelInformation::ModelTransform</a> <a class="code" href="class_ogre__gl_t_f_1_1loader_adapter.html#ae61617a049626869954e57ff0a7a2109">loaderAdapter::getTransform</a>() { <span class="keywordflow">return</span> this-&gt;pimpl-&gt;modelConv.getTransform(); }</div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="class_ogre__gl_t_f_1_1loader_adapter.html#acc344a61f7cef4addca802707bd1fea4">   74</a></span>&#160;Ogre::MeshPtr <a class="code" href="class_ogre__gl_t_f_1_1loader_adapter.html#acc344a61f7cef4addca802707bd1fea4">loaderAdapter::getMesh</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    <span class="keyword">auto</span> Mesh = this-&gt;pimpl-&gt;modelConv.getOgreMesh();</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    <span class="keywordflow">if</span>(this-&gt;pimpl-&gt;modelConv.hasSkins())</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    {</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;        <span class="comment">//load skeleton information</span></div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;        <span class="keyword">auto</span> skeleton = this-&gt;pimpl-&gt;skeletonImp.getSkeleton(this-&gt;adapterName);</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;        Mesh-&gt;_notifySkeleton(skeleton);</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    }</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    <span class="keywordflow">return</span> Mesh;</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;}</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="class_ogre__gl_t_f_1_1loader_adapter.html#adec6084ea93de50084d45dcf5bc15d24">   87</a></span>&#160;Ogre::HlmsDatablock* <a class="code" href="class_ogre__gl_t_f_1_1loader_adapter.html#adec6084ea93de50084d45dcf5bc15d24">loaderAdapter::getDatablock</a>(<span class="keywordtype">size_t</span> index)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> pimpl-&gt;materialLoad.getDatablock(index); }</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="class_ogre__gl_t_f_1_1loader_adapter.html#a923e23c343b8da4d51ff5969cad27520">   89</a></span>&#160;<span class="keywordtype">size_t</span> <a class="code" href="class_ogre__gl_t_f_1_1loader_adapter.html#a923e23c343b8da4d51ff5969cad27520">loaderAdapter::getDatablockCount</a>() { <span class="keywordflow">return</span> pimpl-&gt;materialLoad.getDatablockCount(); }</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="class_ogre__gl_t_f_1_1loader_adapter.html#affd638929e46eeed4b14444b3319654d">   91</a></span>&#160;<a class="code" href="class_ogre__gl_t_f_1_1loader_adapter.html#a007f2e62d2ee48b0f5586b1cc1fbcfcb">loaderAdapter::loaderAdapter</a>(<a class="code" href="class_ogre__gl_t_f_1_1loader_adapter.html">loaderAdapter</a>&amp;&amp; other) noexcept : pimpl { std::move(other.pimpl) }</div><div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;{</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    OgreLog(<span class="stringliteral">&quot;Moved adapter object...&quot;</span>);</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;}</div><div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="class_ogre__gl_t_f_1_1loader_adapter.html#ad0433c4e951b5133d9c7ae93096db90a">   97</a></span>&#160;<a class="code" href="class_ogre__gl_t_f_1_1loader_adapter.html">loaderAdapter</a>&amp; <a class="code" href="class_ogre__gl_t_f_1_1loader_adapter.html#a408041f691670c6e717a9893ee7bcdd8">loaderAdapter::operator=</a>(<a class="code" href="class_ogre__gl_t_f_1_1loader_adapter.html">loaderAdapter</a>&amp;&amp; other) noexcept</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;{</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    pimpl = std::move(other.pimpl);</div><div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;}</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="class_ogre__gl_t_f_1_1loader_adapter.html#a6b2db7f7f8f4a6b6f1d46a0843f40424">  103</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_ogre__gl_t_f_1_1loader_adapter.html#a6b2db7f7f8f4a6b6f1d46a0843f40424">loaderAdapter::isOk</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> pimpl-&gt;valid; }</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="class_ogre__gl_t_f_1_1loader_adapter.html#aee03b488647d7f1aa07be904126deed7">  105</a></span>&#160;std::string <a class="code" href="class_ogre__gl_t_f_1_1loader_adapter.html#aee03b488647d7f1aa07be904126deed7">loaderAdapter::getLastError</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> pimpl-&gt;error; }</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="structgl_t_f_loader_1_1gl_t_f_loader_impl.html">  108</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structgl_t_f_loader_1_1gl_t_f_loader_impl.html">glTFLoader::glTFLoaderImpl</a></div><div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;{</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="structgl_t_f_loader_1_1gl_t_f_loader_impl.html#a45c1ffc29023c24f0ac386cfb113779b">  111</a></span>&#160;    tinygltf::TinyGLTF <a class="code" href="structgl_t_f_loader_1_1gl_t_f_loader_impl.html#a45c1ffc29023c24f0ac386cfb113779b">loader</a>;</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="structgl_t_f_loader_1_1gl_t_f_loader_impl.html#a332d6762edc2d112ea2da1acbc974cb3">  114</a></span>&#160;    <a class="code" href="structgl_t_f_loader_1_1gl_t_f_loader_impl.html#a332d6762edc2d112ea2da1acbc974cb3">glTFLoaderImpl</a>() { OgreLog(<span class="stringliteral">&quot;initialized TinyGLTF loader&quot;</span>); }</div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="structgl_t_f_loader_1_1gl_t_f_loader_impl.html#af58a70adfc0e5e2acd27093732e82d52">  117</a></span>&#160;    <span class="keyword">enum class</span> <a class="code" href="structgl_t_f_loader_1_1gl_t_f_loader_impl.html#af58a70adfc0e5e2acd27093732e82d52">FileType</a> { Ascii, Binary, Unknown };</div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="structgl_t_f_loader_1_1gl_t_f_loader_impl.html#a57ee542d4c011a28af46166f2adc6362">  120</a></span>&#160;    <a class="code" href="structgl_t_f_loader_1_1gl_t_f_loader_impl.html#af58a70adfc0e5e2acd27093732e82d52">FileType</a> <a class="code" href="structgl_t_f_loader_1_1gl_t_f_loader_impl.html#a57ee542d4c011a28af46166f2adc6362">detectType</a>(<span class="keyword">const</span> std::string&amp; path)<span class="keyword"> const</span></div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;<span class="keyword">    </span>{</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;        <span class="comment">//Quickly open the file as binary and check if there&#39;s the gltf binary magic number</span></div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;        {</div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;            <span class="keyword">auto</span> probe = std::ifstream(path, std::ios_base::binary);</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;            <span class="keywordflow">if</span>(!probe) <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;Could not open &quot;</span> + path);</div><div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;            std::array&lt;char, 5&gt; buffer {};</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;            <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i { 0 }; i &lt; 4; ++i) probe &gt;&gt; buffer[i];</div><div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;            buffer[4] = 0;</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;            <span class="keywordflow">if</span>(std::string(<span class="stringliteral">&quot;glTF&quot;</span>) == std::string(buffer.data()))</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;            {</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;                <span class="comment">//OgreLog(&quot;Detected binary file thanks to the magic number at the start!&quot;);</span></div><div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;                <span class="keywordflow">return</span> FileType::Binary;</div><div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;            }</div><div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;        }</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;        <span class="comment">//If we don&#39;t have any better, check the file extension.</span></div><div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;        <span class="keyword">auto</span> extension = path.substr(path.find_last_of(<span class="charliteral">&#39;.&#39;</span>) + 1);</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;        std::transform(std::begin(extension), std::end(extension), std::begin(extension), [](<span class="keywordtype">char</span> c) { <span class="keywordflow">return</span> char(tolower(<span class="keywordtype">int</span>(c))); });</div><div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;        <span class="keywordflow">if</span>(extension == <span class="stringliteral">&quot;gltf&quot;</span>) <span class="keywordflow">return</span> FileType::Ascii;</div><div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;        <span class="keywordflow">if</span>(extension == <span class="stringliteral">&quot;glb&quot;</span>) <span class="keywordflow">return</span> FileType::Binary;</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;        <span class="keywordflow">return</span> FileType::Unknown;</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;    }</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="structgl_t_f_loader_1_1gl_t_f_loader_impl.html#ab24efad6bf9ce8316d08d383eb313678">  148</a></span>&#160;    <span class="keywordtype">bool</span> <a class="code" href="structgl_t_f_loader_1_1gl_t_f_loader_impl.html#ab24efad6bf9ce8316d08d383eb313678">loadInto</a>(<a class="code" href="class_ogre__gl_t_f_1_1loader_adapter.html">loaderAdapter</a>&amp; adapter, <span class="keyword">const</span> std::string&amp; path)</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;    {</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;        <span class="keywordflow">switch</span>(<a class="code" href="structgl_t_f_loader_1_1gl_t_f_loader_impl.html#a57ee542d4c011a28af46166f2adc6362">detectType</a>(path))</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;        {</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;            <span class="keywordflow">default</span>:</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;            <span class="keywordflow">case</span> FileType::Unknown: <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;            <span class="keywordflow">case</span> FileType::Ascii:</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;                <span class="comment">//OgreLog(&quot;Detected ascii file type&quot;);</span></div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;                <span class="keywordflow">return</span> <a class="code" href="structgl_t_f_loader_1_1gl_t_f_loader_impl.html#a45c1ffc29023c24f0ac386cfb113779b">loader</a>.LoadASCIIFromFile(&amp;adapter.pimpl-&gt;model, &amp;adapter.pimpl-&gt;error, &amp;adapter.pimpl-&gt;warnings, path);</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;            <span class="keywordflow">case</span> FileType::Binary:</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;                <span class="comment">//OgreLog(&quot;Deteted binary file type&quot;);</span></div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;                <span class="keywordflow">return</span> <a class="code" href="structgl_t_f_loader_1_1gl_t_f_loader_impl.html#a45c1ffc29023c24f0ac386cfb113779b">loader</a>.LoadBinaryFromFile(&amp;adapter.pimpl-&gt;model, &amp;adapter.pimpl-&gt;error, &amp;adapter.pimpl-&gt;warnings, path);</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;        }</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;    }</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;    <span class="keywordtype">bool</span> loadGlb(<a class="code" href="class_ogre__gl_t_f_1_1loader_adapter.html">loaderAdapter</a>&amp; adapter, GlbFilePtr file)</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;    {</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="structgl_t_f_loader_1_1gl_t_f_loader_impl.html#a45c1ffc29023c24f0ac386cfb113779b">loader</a>.LoadBinaryFromMemory(</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;            &amp;adapter.pimpl-&gt;model, &amp;adapter.pimpl-&gt;error, &amp;adapter.pimpl-&gt;warnings, file-&gt;getData(), int(file-&gt;getSize()), <span class="stringliteral">&quot;.&quot;</span>, 0);</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;    }</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;};</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="class_ogre__gl_t_f_1_1gl_t_f_loader.html#a3cdf1c1f9d24407a347d430e60ee5207">  170</a></span>&#160;<a class="code" href="class_ogre__gl_t_f_1_1gl_t_f_loader.html#a3cdf1c1f9d24407a347d430e60ee5207">glTFLoader::glTFLoader</a>() : loaderImpl { std::make_unique&lt;glTFLoaderImpl&gt;() }</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;{</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;    <span class="keywordflow">if</span>(Ogre::Root::getSingletonPtr() == <span class="keyword">nullptr</span>) <span class="keywordflow">throw</span> std::runtime_error(<span class="stringliteral">&quot;Please create an Ogre::Root instance before initializing the glTF library!&quot;</span>);</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;    <span class="keywordflow">if</span>(!<a class="code" href="class_ogre__gl_t_f_1_1_glb_file_manager.html#add2684082a846eb8066eeb492380cb97">Ogre_glTF::GlbFileManager::getSingletonPtr</a>()) <span class="keyword">new</span> <a class="code" href="class_ogre__gl_t_f_1_1_glb_file_manager.html">GlbFileManager</a>;</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;    OgreLog(<span class="stringliteral">&quot;glTFLoader created!&quot;</span>);</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;}</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="class_ogre__gl_t_f_1_1gl_t_f_loader.html#afac8c41be7c44a6dbb23aedeeaf69a4a">  179</a></span>&#160;<a class="code" href="class_ogre__gl_t_f_1_1loader_adapter.html">loaderAdapter</a> <a class="code" href="class_ogre__gl_t_f_1_1gl_t_f_loader.html#afac8c41be7c44a6dbb23aedeeaf69a4a">glTFLoader::loadFromFileSystem</a>(<span class="keyword">const</span> std::string&amp; path)<span class="keyword"> const</span></div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;    OgreLog(<span class="stringliteral">&quot;loading file &quot;</span> + path);</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;    <a class="code" href="class_ogre__gl_t_f_1_1loader_adapter.html">loaderAdapter</a> adapter;</div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;    adapter.adapterName = path;</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;    loaderImpl-&gt;loadInto(adapter, path);</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;</div><div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;    <span class="comment">//if (adapter.getLastError().empty())</span></div><div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;    {</div><div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;        OgreLog(<span class="stringliteral">&quot;Debug : it looks like the file was loaded without error!&quot;</span>);</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;        adapter.pimpl-&gt;valid = <span class="keyword">true</span>;</div><div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;    }</div><div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;    adapter.pimpl-&gt;modelConv.debugDump();</div><div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;    <span class="keywordflow">return</span> adapter;</div><div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;}</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="class_ogre__gl_t_f_1_1gl_t_f_loader.html#a854ae9d5696d874bd6f94e612e4aacc3">  196</a></span>&#160;<a class="code" href="class_ogre__gl_t_f_1_1loader_adapter.html">loaderAdapter</a> <a class="code" href="class_ogre__gl_t_f_1_1gl_t_f_loader.html#a854ae9d5696d874bd6f94e612e4aacc3">glTFLoader::loadGlbResource</a>(<span class="keyword">const</span> std::string&amp; name)<span class="keyword"> const</span></div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;    OgreLog(<span class="stringliteral">&quot;Loading GLB from resource manager &quot;</span> + name);</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;    <span class="keyword">auto</span>&amp; glbManager = <a class="code" href="class_ogre__gl_t_f_1_1_glb_file_manager.html#a9cf96803b0add7c98cd67f044d2e346b">GlbFileManager::getSingleton</a>();</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;    <span class="keyword">auto</span> glbFile     = glbManager.load(name, Ogre::ResourceGroupManager::AUTODETECT_RESOURCE_GROUP_NAME);</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;    <a class="code" href="class_ogre__gl_t_f_1_1loader_adapter.html">loaderAdapter</a> adapter;</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;    <span class="keywordflow">if</span>(glbFile)</div><div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;    {</div><div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;        loaderImpl-&gt;loadGlb(adapter, glbFile);</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;        adapter.pimpl-&gt;valid = <span class="keyword">true</span>;</div><div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;    }</div><div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;    adapter.pimpl-&gt;modelConv.debugDump();</div><div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;    <span class="keywordflow">return</span> adapter;</div><div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;}</div><div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;</div><div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="class_ogre__gl_t_f_1_1gl_t_f_loader.html#a6a100aa473b61768dfa556e20df11868">  213</a></span>&#160;<a class="code" href="struct_ogre__gl_t_f_1_1_model_information.html">ModelInformation</a> <a class="code" href="class_ogre__gl_t_f_1_1gl_t_f_loader.html#a6a100aa473b61768dfa556e20df11868">glTFLoader::getModelData</a>(<span class="keyword">const</span> std::string&amp; modelName, <a class="code" href="struct_ogre__gl_t_f_1_1gl_t_f_loader_interface.html#a56f74d9fb7f1b1aae1e962b3c2b18416">LoadFrom</a> loadLocation)</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;{</div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;    <span class="keyword">auto</span> adapter = [&amp;] {</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;        <span class="keywordflow">switch</span>(loadLocation)</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;        {</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;            <span class="keywordflow">case</span> LoadFrom::FileSystem: <span class="keywordflow">return</span> <a class="code" href="class_ogre__gl_t_f_1_1gl_t_f_loader.html#afac8c41be7c44a6dbb23aedeeaf69a4a">loadFromFileSystem</a>(modelName);</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;            <span class="keywordflow">case</span> LoadFrom::ResourceManager: <span class="keywordflow">return</span> <a class="code" href="class_ogre__gl_t_f_1_1gl_t_f_loader.html#a854ae9d5696d874bd6f94e612e4aacc3">loadGlbResource</a>(modelName);</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;        }</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="class_ogre__gl_t_f_1_1loader_adapter.html">loaderAdapter</a> {};</div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;    }();</div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;    <span class="keywordflow">if</span>(!adapter.<a class="code" href="class_ogre__gl_t_f_1_1loader_adapter.html#a6b2db7f7f8f4a6b6f1d46a0843f40424">isOk</a>()) OgreLog(<span class="stringliteral">&quot;adapter is signaling it isn&#39;t in \&quot;ok\&quot; state&quot;</span>);</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;    adapter.pimpl-&gt;textureImp.loadTextures();</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;    <a class="code" href="struct_ogre__gl_t_f_1_1_model_information.html">ModelInformation</a> model;</div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;    model.<a class="code" href="struct_ogre__gl_t_f_1_1_model_information.html#ae8a1964f828958a285ef2dce6324097f">mesh</a>      = adapter.<a class="code" href="class_ogre__gl_t_f_1_1loader_adapter.html#acc344a61f7cef4addca802707bd1fea4">getMesh</a>();</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;    model.transform = adapter.<a class="code" href="class_ogre__gl_t_f_1_1loader_adapter.html#ae61617a049626869954e57ff0a7a2109">getTransform</a>();</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;    <span class="keywordflow">for</span>(<span class="keywordtype">size_t</span> i { 0 }; i &lt; adapter.<a class="code" href="class_ogre__gl_t_f_1_1loader_adapter.html#a923e23c343b8da4d51ff5969cad27520">getDatablockCount</a>(); i++) model.<a class="code" href="struct_ogre__gl_t_f_1_1_model_information.html#a30409c300254e8eaddd4ed3710b5eb3f">pbrMaterialList</a>.push_back(adapter.<a class="code" href="class_ogre__gl_t_f_1_1loader_adapter.html#adec6084ea93de50084d45dcf5bc15d24">getDatablock</a>(i));</div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;    <span class="keywordflow">return</span> model;</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;}</div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;</div><div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="class_ogre__gl_t_f_1_1gl_t_f_loader.html#ad7f0773e1eef31312a474d07f39c7a3c">  237</a></span>&#160;[[deprecated]] Ogre::Item* <a class="code" href="class_ogre__gl_t_f_1_1gl_t_f_loader.html#ad7f0773e1eef31312a474d07f39c7a3c">glTFLoader::getItemFromResource</a>(<span class="keyword">const</span> std::string&amp; name, Ogre::SceneManager* smgr)</div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;{</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;    OgreLog(<span class="stringliteral">&quot;Getting resource&quot;</span>);</div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;    <span class="keyword">auto</span> adapter = <a class="code" href="class_ogre__gl_t_f_1_1gl_t_f_loader.html#a854ae9d5696d874bd6f94e612e4aacc3">loadGlbResource</a>(name);</div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;    <span class="keywordflow">if</span>(adapter.<a class="code" href="class_ogre__gl_t_f_1_1loader_adapter.html#a6b2db7f7f8f4a6b6f1d46a0843f40424">isOk</a>()) { OgreLog(<span class="stringliteral">&quot;Adapter is ok!&quot;</span>); }</div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;    {</div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;        OgreLog(<span class="stringliteral">&quot;Adapter is not okay!&quot;</span>);</div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;    }</div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;</div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;    OgreLog(<span class="stringliteral">&quot;Calling get item with your smgr...&quot;</span>);</div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;    <span class="keywordflow">return</span> adapter.<a class="code" href="class_ogre__gl_t_f_1_1loader_adapter.html#a3dbd195b41463feaf4ad135370cf899a">getItem</a>(smgr);</div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;}</div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;</div><div class="line"><a name="l00251"></a><span class="lineno"><a class="line" href="class_ogre__gl_t_f_1_1gl_t_f_loader.html#ae07109a22311da5ecfb647edc80e0d71">  251</a></span>&#160;[[deprecated]] Ogre::Item* <a class="code" href="class_ogre__gl_t_f_1_1gl_t_f_loader.html#ae07109a22311da5ecfb647edc80e0d71">glTFLoader::getItemFromFileSystem</a>(<span class="keyword">const</span> std::string&amp; fileName, Ogre::SceneManager* smgr)</div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;{</div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;    <span class="keyword">auto</span> adapter = <a class="code" href="class_ogre__gl_t_f_1_1gl_t_f_loader.html#afac8c41be7c44a6dbb23aedeeaf69a4a">loadFromFileSystem</a>(fileName);</div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;    <span class="keywordflow">if</span>(adapter.<a class="code" href="class_ogre__gl_t_f_1_1loader_adapter.html#a6b2db7f7f8f4a6b6f1d46a0843f40424">isOk</a>()) { OgreLog(<span class="stringliteral">&quot;Adapter is ok!&quot;</span>); }</div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;    {</div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;        OgreLog(<span class="stringliteral">&quot;Adapter is not okay!&quot;</span>);</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;    }</div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;    <span class="keywordflow">return</span> adapter.<a class="code" href="class_ogre__gl_t_f_1_1loader_adapter.html#a3dbd195b41463feaf4ad135370cf899a">getItem</a>(smgr);</div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;}</div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;</div><div class="line"><a name="l00262"></a><span class="lineno"><a class="line" href="class_ogre__gl_t_f_1_1gl_t_f_loader.html#a2a850ee80e62c910602df8feafd6ea08">  262</a></span>&#160;[[deprecated]] <a class="code" href="struct_ogre__gl_t_f_1_1_mesh_and_data_block.html">MeshAndDataBlock</a> <a class="code" href="class_ogre__gl_t_f_1_1gl_t_f_loader.html#a2a850ee80e62c910602df8feafd6ea08">glTFLoader::getMeshFromFileSystem</a>(<span class="keyword">const</span> std::string&amp; name)</div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;{</div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;    <span class="keyword">auto</span> adapter = <a class="code" href="class_ogre__gl_t_f_1_1gl_t_f_loader.html#afac8c41be7c44a6dbb23aedeeaf69a4a">loadFromFileSystem</a>(name);</div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;    <span class="keywordflow">if</span>(adapter.<a class="code" href="class_ogre__gl_t_f_1_1loader_adapter.html#a6b2db7f7f8f4a6b6f1d46a0843f40424">isOk</a>()) { OgreLog(<span class="stringliteral">&quot;Adapter is ok!&quot;</span>); }</div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;    {</div><div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;        OgreLog(<span class="stringliteral">&quot;Adapter is not okay!&quot;</span>);</div><div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;    }</div><div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;    <span class="keywordflow">return</span> { adapter.<a class="code" href="class_ogre__gl_t_f_1_1loader_adapter.html#acc344a61f7cef4addca802707bd1fea4">getMesh</a>(), adapter.<a class="code" href="class_ogre__gl_t_f_1_1loader_adapter.html#adec6084ea93de50084d45dcf5bc15d24">getDatablock</a>(0) };</div><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;}</div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno"><a class="line" href="class_ogre__gl_t_f_1_1gl_t_f_loader.html#a90bc322cf88bac154bf345b5932cf3f8">  273</a></span>&#160;[[deprecated]] <a class="code" href="struct_ogre__gl_t_f_1_1_mesh_and_data_block.html">MeshAndDataBlock</a> <a class="code" href="class_ogre__gl_t_f_1_1gl_t_f_loader.html#a90bc322cf88bac154bf345b5932cf3f8">glTFLoader::getMeshFromResource</a>(<span class="keyword">const</span> std::string&amp; name)</div><div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;{</div><div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;    <span class="keyword">auto</span> adapter = <a class="code" href="class_ogre__gl_t_f_1_1gl_t_f_loader.html#a854ae9d5696d874bd6f94e612e4aacc3">loadGlbResource</a>(name);</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;    <span class="keywordflow">if</span>(adapter.<a class="code" href="class_ogre__gl_t_f_1_1loader_adapter.html#a6b2db7f7f8f4a6b6f1d46a0843f40424">isOk</a>()) { OgreLog(<span class="stringliteral">&quot;Adapter is ok!&quot;</span>); }</div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;    {</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;        OgreLog(<span class="stringliteral">&quot;Adapter is not okay!&quot;</span>);</div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;    }</div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;    <span class="keywordflow">return</span> { adapter.<a class="code" href="class_ogre__gl_t_f_1_1loader_adapter.html#acc344a61f7cef4addca802707bd1fea4">getMesh</a>(), adapter.<a class="code" href="class_ogre__gl_t_f_1_1loader_adapter.html#adec6084ea93de50084d45dcf5bc15d24">getDatablock</a>(0) };</div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;}</div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;</div><div class="line"><a name="l00284"></a><span class="lineno"><a class="line" href="class_ogre__gl_t_f_1_1gl_t_f_loader.html#a40845fca1ae8c6f3610f5aca55b17c1a">  284</a></span>&#160;<a class="code" href="class_ogre__gl_t_f_1_1gl_t_f_loader.html#a3cdf1c1f9d24407a347d430e60ee5207">glTFLoader::glTFLoader</a>(<a class="code" href="class_ogre__gl_t_f_1_1gl_t_f_loader.html">glTFLoader</a>&amp;&amp; other) noexcept : loaderImpl(std::move(other.loaderImpl)) {}</div><div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;</div><div class="line"><a name="l00286"></a><span class="lineno"><a class="line" href="class_ogre__gl_t_f_1_1gl_t_f_loader.html#a8197ec374505efbcc52d34b89132792f">  286</a></span>&#160;<a class="code" href="class_ogre__gl_t_f_1_1gl_t_f_loader.html">glTFLoader</a>&amp; <a class="code" href="class_ogre__gl_t_f_1_1gl_t_f_loader.html#a8197ec374505efbcc52d34b89132792f">glTFLoader::operator=</a>(<a class="code" href="class_ogre__gl_t_f_1_1gl_t_f_loader.html">glTFLoader</a>&amp;&amp; other) noexcept</div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;{</div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;    loaderImpl = std::move(other.loaderImpl);</div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;    <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;}</div><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;</div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;<a class="code" href="class_ogre__gl_t_f_1_1gl_t_f_loader.html#a85f0e69d53eb0e87f47d56d7fb5bf203">glTFLoader::~glTFLoader</a>() = <span class="keywordflow">default</span>;</div><div class="ttc" id="class_ogre__gl_t_f_1_1loader_adapter_html_acf9c1fd0f8ed3b627358eae7ec208ae8"><div class="ttname"><a href="class_ogre__gl_t_f_1_1loader_adapter.html#acf9c1fd0f8ed3b627358eae7ec208ae8">Ogre_glTF::loaderAdapter::~loaderAdapter</a></div><div class="ttdeci">~loaderAdapter()</div><div class="ttdoc">This clear the pimpl structure. </div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f_8cpp_source.html#l00056">Ogre_glTF.cpp:56</a></div></div>
<div class="ttc" id="class_ogre__gl_t_f_1_1gl_t_f_loader_html_a2a850ee80e62c910602df8feafd6ea08"><div class="ttname"><a href="class_ogre__gl_t_f_1_1gl_t_f_loader.html#a2a850ee80e62c910602df8feafd6ea08">Ogre_glTF::glTFLoader::getMeshFromFileSystem</a></div><div class="ttdeci">MeshAndDataBlock getMeshFromFileSystem(const std::string &amp;name) override</div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f_8cpp_source.html#l00262">Ogre_glTF.cpp:262</a></div></div>
<div class="ttc" id="struct_ogre__gl_t_f_1_1gl_t_f_loader_interface_html_a56f74d9fb7f1b1aae1e962b3c2b18416"><div class="ttname"><a href="struct_ogre__gl_t_f_1_1gl_t_f_loader_interface.html#a56f74d9fb7f1b1aae1e962b3c2b18416">Ogre_glTF::glTFLoaderInterface::LoadFrom</a></div><div class="ttdeci">LoadFrom</div><div class="ttdoc">location where to load the data </div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f_8hpp_source.html#l00059">Ogre_glTF.hpp:59</a></div></div>
<div class="ttc" id="class_ogre__gl_t_f_1_1skeleton_importer_html"><div class="ttname"><a href="class_ogre__gl_t_f_1_1skeleton_importer.html">Ogre_glTF::skeletonImporter</a></div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f__skeleton_importer_8hpp_source.html#l00010">Ogre_glTF_skeletonImporter.hpp:10</a></div></div>
<div class="ttc" id="class_ogre__gl_t_f_1_1gl_t_f_loader_html_a854ae9d5696d874bd6f94e612e4aacc3"><div class="ttname"><a href="class_ogre__gl_t_f_1_1gl_t_f_loader.html#a854ae9d5696d874bd6f94e612e4aacc3">Ogre_glTF::glTFLoader::loadGlbResource</a></div><div class="ttdeci">loaderAdapter loadGlbResource(const std::string &amp;name) const</div><div class="ttdoc">Load a GLB from Ogre&amp;#39;s resource manager. </div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f_8cpp_source.html#l00196">Ogre_glTF.cpp:196</a></div></div>
<div class="ttc" id="structgl_t_f_loader_1_1gl_t_f_loader_impl_html_af58a70adfc0e5e2acd27093732e82d52"><div class="ttname"><a href="structgl_t_f_loader_1_1gl_t_f_loader_impl.html#af58a70adfc0e5e2acd27093732e82d52">Ogre_glTF::glTFLoader::glTFLoaderImpl::FileType</a></div><div class="ttdeci">FileType</div><div class="ttdoc">For file type detection. Ascii is plain old JSON text, Binary is .glc files. </div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f_8cpp_source.html#l00117">Ogre_glTF.cpp:117</a></div></div>
<div class="ttc" id="structloader_adapter_1_1impl_html_a9af00068eb708150c0a8b82224aac4b7"><div class="ttname"><a href="structloader_adapter_1_1impl.html#a9af00068eb708150c0a8b82224aac4b7">Ogre_glTF::loaderAdapter::impl::textureImp</a></div><div class="ttdeci">textureImporter textureImp</div><div class="ttdoc">Texture importer object : go through the texture array and load them into Ogre. </div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f_8cpp_source.html#l00041">Ogre_glTF.cpp:41</a></div></div>
<div class="ttc" id="structloader_adapter_1_1impl_html_a00bf8d32948b8f5190a343ee4023ec99"><div class="ttname"><a href="structloader_adapter_1_1impl.html#a00bf8d32948b8f5190a343ee4023ec99">Ogre_glTF::loaderAdapter::impl::materialLoad</a></div><div class="ttdeci">materialLoader materialLoad</div><div class="ttdoc">Material loader : get the data from the material section of the glTF file and create an HlmsDatablock...</div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f_8cpp_source.html#l00044">Ogre_glTF.cpp:44</a></div></div>
<div class="ttc" id="struct_ogre__gl_t_f_1_1_model_information_html"><div class="ttname"><a href="struct_ogre__gl_t_f_1_1_model_information.html">Ogre_glTF::ModelInformation</a></div><div class="ttdoc">Structure that contains the information of the model that you loaded. </div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f_8hpp_source.html#l00014">Ogre_glTF.hpp:14</a></div></div>
<div class="ttc" id="structloader_adapter_1_1impl_html"><div class="ttname"><a href="structloader_adapter_1_1impl.html">Ogre_glTF::loaderAdapter::impl</a></div><div class="ttdoc">Implementaiton of the adapter. </div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f_8cpp_source.html#l00022">Ogre_glTF.cpp:22</a></div></div>
<div class="ttc" id="structloader_adapter_1_1impl_html_ab649b615fd7c007d594e6fa25aa27b65"><div class="ttname"><a href="structloader_adapter_1_1impl.html#ab649b615fd7c007d594e6fa25aa27b65">Ogre_glTF::loaderAdapter::impl::valid</a></div><div class="ttdeci">bool valid</div><div class="ttdoc">Variable to check if everything is alright with the adapter. </div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f_8cpp_source.html#l00029">Ogre_glTF.cpp:29</a></div></div>
<div class="ttc" id="class_ogre__gl_t_f_1_1loader_adapter_html_a6b2db7f7f8f4a6b6f1d46a0843f40424"><div class="ttname"><a href="class_ogre__gl_t_f_1_1loader_adapter.html#a6b2db7f7f8f4a6b6f1d46a0843f40424">Ogre_glTF::loaderAdapter::isOk</a></div><div class="ttdeci">bool isOk() const</div><div class="ttdoc">Return the current state of the adapter. </div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f_8cpp_source.html#l00103">Ogre_glTF.cpp:103</a></div></div>
<div class="ttc" id="class_ogre__gl_t_f_1_1loader_adapter_html"><div class="ttname"><a href="class_ogre__gl_t_f_1_1loader_adapter.html">Ogre_glTF::loaderAdapter</a></div><div class="ttdoc">Class that hold the loaded content of a glTF file and that can create Ogre objects from it...</div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f_8hpp_source.html#l00090">Ogre_glTF.hpp:90</a></div></div>
<div class="ttc" id="class_ogre__gl_t_f_1_1texture_importer_html"><div class="ttname"><a href="class_ogre__gl_t_f_1_1texture_importer.html">Ogre_glTF::textureImporter</a></div><div class="ttdoc">Import textures described in glTF into Ogre. </div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f__texture_importer_8hpp_source.html#l00011">Ogre_glTF_textureImporter.hpp:11</a></div></div>
<div class="ttc" id="class_ogre__gl_t_f_1_1loader_adapter_html_aee03b488647d7f1aa07be904126deed7"><div class="ttname"><a href="class_ogre__gl_t_f_1_1loader_adapter.html#aee03b488647d7f1aa07be904126deed7">Ogre_glTF::loaderAdapter::getLastError</a></div><div class="ttdeci">std::string getLastError() const</div><div class="ttdoc">Return the last error generated by the underlying glTF loading library. </div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f_8cpp_source.html#l00105">Ogre_glTF.cpp:105</a></div></div>
<div class="ttc" id="class_ogre__gl_t_f_1_1material_loader_html"><div class="ttname"><a href="class_ogre__gl_t_f_1_1material_loader.html">Ogre_glTF::materialLoader</a></div><div class="ttdoc">Load material information from a model inside Ogre, provide you a datablock to set to an Ogre::Item o...</div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f__material_loader_8hpp_source.html#l00013">Ogre_glTF_materialLoader.hpp:13</a></div></div>
<div class="ttc" id="class_ogre__gl_t_f_1_1gl_t_f_loader_html_a6a100aa473b61768dfa556e20df11868"><div class="ttname"><a href="class_ogre__gl_t_f_1_1gl_t_f_loader.html#a6a100aa473b61768dfa556e20df11868">Ogre_glTF::glTFLoader::getModelData</a></div><div class="ttdeci">ModelInformation getModelData(const std::string &amp;modelName, LoadFrom loadLocation) override</div><div class="ttdoc">Get the model data. Contains everything you need to create object from the model contained on the glT...</div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f_8cpp_source.html#l00213">Ogre_glTF.cpp:213</a></div></div>
<div class="ttc" id="class_ogre__gl_t_f_1_1gl_t_f_loader_html"><div class="ttname"><a href="class_ogre__gl_t_f_1_1gl_t_f_loader.html">Ogre_glTF::glTFLoader</a></div><div class="ttdoc">Class that is responsible for initializing the library with the loader, and giving out...</div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f_8hpp_source.html#l00147">Ogre_glTF.hpp:147</a></div></div>
<div class="ttc" id="class_ogre__gl_t_f_1_1gl_t_f_loader_html_a8197ec374505efbcc52d34b89132792f"><div class="ttname"><a href="class_ogre__gl_t_f_1_1gl_t_f_loader.html#a8197ec374505efbcc52d34b89132792f">Ogre_glTF::glTFLoader::operator=</a></div><div class="ttdeci">glTFLoader &amp; operator=(glTFLoader &amp;&amp;other) noexcept</div><div class="ttdoc">Move assign operator. </div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f_8cpp_source.html#l00286">Ogre_glTF.cpp:286</a></div></div>
<div class="ttc" id="class_ogre__gl_t_f_1_1loader_adapter_html_a3dbd195b41463feaf4ad135370cf899a"><div class="ttname"><a href="class_ogre__gl_t_f_1_1loader_adapter.html#a3dbd195b41463feaf4ad135370cf899a">Ogre_glTF::loaderAdapter::getItem</a></div><div class="ttdeci">Ogre::Item * getItem(Ogre::SceneManager *smgr) const</div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f_8cpp_source.html#l00058">Ogre_glTF.cpp:58</a></div></div>
<div class="ttc" id="class_ogre__gl_t_f_1_1loader_adapter_html_a923e23c343b8da4d51ff5969cad27520"><div class="ttname"><a href="class_ogre__gl_t_f_1_1loader_adapter.html#a923e23c343b8da4d51ff5969cad27520">Ogre_glTF::loaderAdapter::getDatablockCount</a></div><div class="ttdeci">size_t getDatablockCount()</div><div class="ttdoc">Return the number of datablock stored. </div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f_8cpp_source.html#l00089">Ogre_glTF.cpp:89</a></div></div>
<div class="ttc" id="structgl_t_f_loader_1_1gl_t_f_loader_impl_html_a332d6762edc2d112ea2da1acbc974cb3"><div class="ttname"><a href="structgl_t_f_loader_1_1gl_t_f_loader_impl.html#a332d6762edc2d112ea2da1acbc974cb3">Ogre_glTF::glTFLoader::glTFLoaderImpl::glTFLoaderImpl</a></div><div class="ttdeci">glTFLoaderImpl()</div><div class="ttdoc">Constructor. the loader is on the stack, there isn&amp;#39;t much state to set inside the object...</div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f_8cpp_source.html#l00114">Ogre_glTF.cpp:114</a></div></div>
<div class="ttc" id="class_ogre__gl_t_f_1_1gl_t_f_loader_html_a85f0e69d53eb0e87f47d56d7fb5bf203"><div class="ttname"><a href="class_ogre__gl_t_f_1_1gl_t_f_loader.html#a85f0e69d53eb0e87f47d56d7fb5bf203">Ogre_glTF::glTFLoader::~glTFLoader</a></div><div class="ttdeci">~glTFLoader()</div><div class="ttdoc">Deinitialize the library at this object destruction. </div></div>
<div class="ttc" id="struct_ogre__gl_t_f_1_1_model_information_html_a30409c300254e8eaddd4ed3710b5eb3f"><div class="ttname"><a href="struct_ogre__gl_t_f_1_1_model_information.html#a30409c300254e8eaddd4ed3710b5eb3f">Ogre_glTF::ModelInformation::pbrMaterialList</a></div><div class="ttdeci">std::vector&lt; Ogre::HlmsDatablock * &gt; pbrMaterialList</div><div class="ttdoc">List of materials that correspond to each of the submeshes in the model. </div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f_8hpp_source.html#l00029">Ogre_glTF.hpp:29</a></div></div>
<div class="ttc" id="structloader_adapter_1_1impl_html_a910e82c85231e87e90a3ccc7e360ebd0"><div class="ttname"><a href="structloader_adapter_1_1impl.html#a910e82c85231e87e90a3ccc7e360ebd0">Ogre_glTF::loaderAdapter::impl::skeletonImp</a></div><div class="ttdeci">skeletonImporter skeletonImp</div><div class="ttdoc">Skeleton importer : load skins from the glTF model, create equivalent OgreSkeleton objects...</div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f_8cpp_source.html#l00051">Ogre_glTF.cpp:51</a></div></div>
<div class="ttc" id="struct_ogre__gl_t_f_1_1_model_information_html_ae8a1964f828958a285ef2dce6324097f"><div class="ttname"><a href="struct_ogre__gl_t_f_1_1_model_information.html#ae8a1964f828958a285ef2dce6324097f">Ogre_glTF::ModelInformation::mesh</a></div><div class="ttdeci">Ogre::MeshPtr mesh</div><div class="ttdoc">Smart pointer to the loaded mesh. </div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f_8hpp_source.html#l00027">Ogre_glTF.hpp:27</a></div></div>
<div class="ttc" id="structloader_adapter_1_1impl_html_a017131119684a2a51353488ac21137b2"><div class="ttname"><a href="structloader_adapter_1_1impl.html#a017131119684a2a51353488ac21137b2">Ogre_glTF::loaderAdapter::impl::model</a></div><div class="ttdeci">tinygltf::Model model</div><div class="ttdoc">The model object that data will be loaded into and read from. </div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f_8cpp_source.html#l00032">Ogre_glTF.cpp:32</a></div></div>
<div class="ttc" id="class_ogre__gl_t_f_1_1loader_adapter_html_acc344a61f7cef4addca802707bd1fea4"><div class="ttname"><a href="class_ogre__gl_t_f_1_1loader_adapter.html#acc344a61f7cef4addca802707bd1fea4">Ogre_glTF::loaderAdapter::getMesh</a></div><div class="ttdeci">Ogre::MeshPtr getMesh() const</div><div class="ttdoc">Return the mesh loaded from the glTF file. </div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f_8cpp_source.html#l00074">Ogre_glTF.cpp:74</a></div></div>
<div class="ttc" id="struct_ogre__gl_t_f_1_1_mesh_and_data_block_html"><div class="ttname"><a href="struct_ogre__gl_t_f_1_1_mesh_and_data_block.html">Ogre_glTF::MeshAndDataBlock</a></div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f_8hpp_source.html#l00043">Ogre_glTF.hpp:43</a></div></div>
<div class="ttc" id="class_ogre__gl_t_f_1_1_glb_file_manager_html_a9cf96803b0add7c98cd67f044d2e346b"><div class="ttname"><a href="class_ogre__gl_t_f_1_1_glb_file_manager.html#a9cf96803b0add7c98cd67f044d2e346b">Ogre_glTF::GlbFileManager::getSingleton</a></div><div class="ttdeci">static GlbFileManager &amp; getSingleton()</div><div class="ttdoc">Return the single instance of the manager. </div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f___ogre_resource_8cpp_source.html#l00078">Ogre_glTF_OgreResource.cpp:78</a></div></div>
<div class="ttc" id="structloader_adapter_1_1impl_html_a9e7b3bf5bd1f566a8889cf754fac7df5"><div class="ttname"><a href="structloader_adapter_1_1impl.html#a9e7b3bf5bd1f566a8889cf754fac7df5">Ogre_glTF::loaderAdapter::impl::warnings</a></div><div class="ttdeci">std::string warnings</div><div class="ttdoc">Where tinygltf will write it&amp;#39;s warning messages. </div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f_8cpp_source.html#l00038">Ogre_glTF.cpp:38</a></div></div>
<div class="ttc" id="class_ogre__gl_t_f_1_1gl_t_f_loader_html_afac8c41be7c44a6dbb23aedeeaf69a4a"><div class="ttname"><a href="class_ogre__gl_t_f_1_1gl_t_f_loader.html#afac8c41be7c44a6dbb23aedeeaf69a4a">Ogre_glTF::glTFLoader::loadFromFileSystem</a></div><div class="ttdeci">loaderAdapter loadFromFileSystem(const std::string &amp;path) const</div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f_8cpp_source.html#l00179">Ogre_glTF.cpp:179</a></div></div>
<div class="ttc" id="class_ogre__gl_t_f_1_1loader_adapter_html_ae61617a049626869954e57ff0a7a2109"><div class="ttname"><a href="class_ogre__gl_t_f_1_1loader_adapter.html#ae61617a049626869954e57ff0a7a2109">Ogre_glTF::loaderAdapter::getTransform</a></div><div class="ttdeci">ModelInformation::ModelTransform getTransform()</div><div class="ttdoc">Get the local transform to apply to the node to align the model with what you would expect...</div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f_8cpp_source.html#l00072">Ogre_glTF.cpp:72</a></div></div>
<div class="ttc" id="structgl_t_f_loader_1_1gl_t_f_loader_impl_html_a57ee542d4c011a28af46166f2adc6362"><div class="ttname"><a href="structgl_t_f_loader_1_1gl_t_f_loader_impl.html#a57ee542d4c011a28af46166f2adc6362">Ogre_glTF::glTFLoader::glTFLoaderImpl::detectType</a></div><div class="ttdeci">FileType detectType(const std::string &amp;path) const</div><div class="ttdoc">Probe inside the file, or check the extension to determine if we have to load a text file...</div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f_8cpp_source.html#l00120">Ogre_glTF.cpp:120</a></div></div>
<div class="ttc" id="structloader_adapter_1_1impl_html_ab105fd46afde9caf98dba76009ac10ad"><div class="ttname"><a href="structloader_adapter_1_1impl.html#ab105fd46afde9caf98dba76009ac10ad">Ogre_glTF::loaderAdapter::impl::modelConv</a></div><div class="ttdeci">modelConverter modelConv</div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f_8cpp_source.html#l00048">Ogre_glTF.cpp:48</a></div></div>
<div class="ttc" id="class_ogre__gl_t_f_1_1_glb_file_manager_html"><div class="ttname"><a href="class_ogre__gl_t_f_1_1_glb_file_manager.html">Ogre_glTF::GlbFileManager</a></div><div class="ttdoc">File manager. initialized by the plugin, this is for Ogre, not for you. </div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f___ogre_resource_8hpp_source.html#l00055">Ogre_glTF_OgreResource.hpp:55</a></div></div>
<div class="ttc" id="class_ogre__gl_t_f_1_1_glb_file_manager_html_add2684082a846eb8066eeb492380cb97"><div class="ttname"><a href="class_ogre__gl_t_f_1_1_glb_file_manager.html#add2684082a846eb8066eeb492380cb97">Ogre_glTF::GlbFileManager::getSingletonPtr</a></div><div class="ttdeci">static GlbFileManager * getSingletonPtr()</div><div class="ttdoc">Return the pointer to the single instance of the manager. </div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f___ogre_resource_8cpp_source.html#l00080">Ogre_glTF_OgreResource.cpp:80</a></div></div>
<div class="ttc" id="class_ogre__gl_t_f_1_1model_converter_html"><div class="ttname"><a href="class_ogre__gl_t_f_1_1model_converter.html">Ogre_glTF::modelConverter</a></div><div class="ttdoc">Converter object : take a tinygltf model and encapsulate all the code necessary to extract mesh infor...</div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f__model_converter_8hpp_source.html#l00154">Ogre_glTF_modelConverter.hpp:154</a></div></div>
<div class="ttc" id="structloader_adapter_1_1impl_html_ab1902523c681ab8317d80a64705a3a74"><div class="ttname"><a href="structloader_adapter_1_1impl.html#ab1902523c681ab8317d80a64705a3a74">Ogre_glTF::loaderAdapter::impl::error</a></div><div class="ttdeci">std::string error</div><div class="ttdoc">Where tinygltf will write it&amp;#39;s error status. </div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f_8cpp_source.html#l00035">Ogre_glTF.cpp:35</a></div></div>
<div class="ttc" id="class_ogre__gl_t_f_1_1gl_t_f_loader_html_a90bc322cf88bac154bf345b5932cf3f8"><div class="ttname"><a href="class_ogre__gl_t_f_1_1gl_t_f_loader.html#a90bc322cf88bac154bf345b5932cf3f8">Ogre_glTF::glTFLoader::getMeshFromResource</a></div><div class="ttdeci">MeshAndDataBlock getMeshFromResource(const std::string &amp;name) override</div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f_8cpp_source.html#l00273">Ogre_glTF.cpp:273</a></div></div>
<div class="ttc" id="class_ogre__gl_t_f_1_1gl_t_f_loader_html_ad7f0773e1eef31312a474d07f39c7a3c"><div class="ttname"><a href="class_ogre__gl_t_f_1_1gl_t_f_loader.html#ad7f0773e1eef31312a474d07f39c7a3c">Ogre_glTF::glTFLoader::getItemFromResource</a></div><div class="ttdeci">Ogre::Item * getItemFromResource(const std::string &amp;name, Ogre::SceneManager *smgr) override</div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f_8cpp_source.html#l00237">Ogre_glTF.cpp:237</a></div></div>
<div class="ttc" id="structgl_t_f_loader_1_1gl_t_f_loader_impl_html"><div class="ttname"><a href="structgl_t_f_loader_1_1gl_t_f_loader_impl.html">Ogre_glTF::glTFLoader::glTFLoaderImpl</a></div><div class="ttdoc">Implementation of the glTF loader. Exist as a pImpl inside the glTFLoader class. </div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f_8cpp_source.html#l00108">Ogre_glTF.cpp:108</a></div></div>
<div class="ttc" id="structgl_t_f_loader_1_1gl_t_f_loader_impl_html_ab24efad6bf9ce8316d08d383eb313678"><div class="ttname"><a href="structgl_t_f_loader_1_1gl_t_f_loader_impl.html#ab24efad6bf9ce8316d08d383eb313678">Ogre_glTF::glTFLoader::glTFLoaderImpl::loadInto</a></div><div class="ttdeci">bool loadInto(loaderAdapter &amp;adapter, const std::string &amp;path)</div><div class="ttdoc">Load the content of a file into an adapter object. </div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f_8cpp_source.html#l00148">Ogre_glTF.cpp:148</a></div></div>
<div class="ttc" id="class_ogre__gl_t_f_1_1loader_adapter_html_adec6084ea93de50084d45dcf5bc15d24"><div class="ttname"><a href="class_ogre__gl_t_f_1_1loader_adapter.html#adec6084ea93de50084d45dcf5bc15d24">Ogre_glTF::loaderAdapter::getDatablock</a></div><div class="ttdeci">Ogre::HlmsDatablock * getDatablock(size_t index=0) const</div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f_8cpp_source.html#l00087">Ogre_glTF.cpp:87</a></div></div>
<div class="ttc" id="class_ogre__gl_t_f_1_1gl_t_f_loader_html_ae07109a22311da5ecfb647edc80e0d71"><div class="ttname"><a href="class_ogre__gl_t_f_1_1gl_t_f_loader.html#ae07109a22311da5ecfb647edc80e0d71">Ogre_glTF::glTFLoader::getItemFromFileSystem</a></div><div class="ttdeci">Ogre::Item * getItemFromFileSystem(const std::string &amp;fileName, Ogre::SceneManager *smgr) override</div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f_8cpp_source.html#l00251">Ogre_glTF.cpp:251</a></div></div>
<div class="ttc" id="class_ogre__gl_t_f_1_1loader_adapter_html_a408041f691670c6e717a9893ee7bcdd8"><div class="ttname"><a href="class_ogre__gl_t_f_1_1loader_adapter.html#a408041f691670c6e717a9893ee7bcdd8">Ogre_glTF::loaderAdapter::operator=</a></div><div class="ttdeci">loaderAdapter &amp; operator=(const loaderAdapter &amp;)=delete</div><div class="ttdoc">Deleted assignment constructor : non copyable class. </div></div>
<div class="ttc" id="struct_ogre__gl_t_f_1_1_model_information_1_1_model_transform_html"><div class="ttname"><a href="struct_ogre__gl_t_f_1_1_model_information_1_1_model_transform.html">Ogre_glTF::ModelInformation::ModelTransform</a></div><div class="ttdoc">Local transform on the glTF node this model came from. </div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f_8hpp_source.html#l00032">Ogre_glTF.hpp:32</a></div></div>
<div class="ttc" id="structloader_adapter_1_1impl_html_aebc596a65a3b61a03f10e113b2e05e02"><div class="ttname"><a href="structloader_adapter_1_1impl.html#aebc596a65a3b61a03f10e113b2e05e02">Ogre_glTF::loaderAdapter::impl::impl</a></div><div class="ttdeci">impl()</div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f_8cpp_source.html#l00026">Ogre_glTF.cpp:26</a></div></div>
<div class="ttc" id="class_ogre__gl_t_f_1_1loader_adapter_html_a007f2e62d2ee48b0f5586b1cc1fbcfcb"><div class="ttname"><a href="class_ogre__gl_t_f_1_1loader_adapter.html#a007f2e62d2ee48b0f5586b1cc1fbcfcb">Ogre_glTF::loaderAdapter::loaderAdapter</a></div><div class="ttdeci">loaderAdapter()</div><div class="ttdoc">This will also initialize the &quot;pimpl&quot; structure. </div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f_8cpp_source.html#l00054">Ogre_glTF.cpp:54</a></div></div>
<div class="ttc" id="class_ogre__gl_t_f_1_1gl_t_f_loader_html_a3cdf1c1f9d24407a347d430e60ee5207"><div class="ttname"><a href="class_ogre__gl_t_f_1_1gl_t_f_loader.html#a3cdf1c1f9d24407a347d430e60ee5207">Ogre_glTF::glTFLoader::glTFLoader</a></div><div class="ttdeci">glTFLoader()</div><div class="ttdoc">Initialize the library by creating this object. </div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f_8cpp_source.html#l00170">Ogre_glTF.cpp:170</a></div></div>
<div class="ttc" id="namespace_ogre__gl_t_f_html"><div class="ttname"><a href="namespace_ogre__gl_t_f.html">Ogre_glTF</a></div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f__internal__utils_8hpp_source.html#l00005">Ogre_glTF_internal_utils.hpp:5</a></div></div>
<div class="ttc" id="structgl_t_f_loader_1_1gl_t_f_loader_impl_html_a45c1ffc29023c24f0ac386cfb113779b"><div class="ttname"><a href="structgl_t_f_loader_1_1gl_t_f_loader_impl.html#a45c1ffc29023c24f0ac386cfb113779b">Ogre_glTF::glTFLoader::glTFLoaderImpl::loader</a></div><div class="ttdeci">tinygltf::TinyGLTF loader</div><div class="ttdoc">The loader object from TinyGLTF. </div><div class="ttdef"><b>Definition:</b> <a href="_ogre__gl_t_f_8cpp_source.html#l00111">Ogre_glTF.cpp:111</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><b>Ogre_glTF.cpp</b></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.14 </li>
  </ul>
</div>
</body>
</html>
